建立陣列
使用「逗號」來建立陣列
PS R:\> $arr = 5, 6, 7
PS R:\> $arr
5
6
7
PS R:\> $arr = ,100
PS R:\> $arr
100
PS R:\> $arr = 100, 200, "abc"
PS R:\> $arr
100
200
abc
PS R:\> $arr = (100, 200, "abc")
PS R:\> $arr.Count
3
PS R:\> $arr = ,(100, 200, "abc")
PS R:\> $arr.Count
1
PS R:\> $arr = ,100, 200, "abc"
PS R:\> $arr.Count
3
命令的可能結果
PS R:\> $files = dir *.txt
使用 @() 傳回陣列
PS R:\> $files = @(dir *.txt)
不使用 @() 的話
PS R:\> $files = dir *.ps1
PS R:\> $files.Length
631
PS R:\> $files = @(dir *.ps1)
PS R:\> $files.Length
1
使用 @() 來建立空陣列
PS R:\> $arr = @()
() vs @()
PS R:\> (dir *.zip)[0]
無法編制 Null 陣列的索引。
位於 線路:1 字元:1
PS R:\> @(dir *.zip)[0]
PS R:\> $null -eq @(dir *.zip)[0]
True
使用 .. 來建立陣列
PS R:\> 100 .. 102
100
101
102
PS R:\> 3 .. 1
3
2
1
function的傳回值
傳回的是,陣列裡的元素。不傳回陣列
PS R:\> function myFunc{
>>
>> 100,200,300
>>
>>
>> return 700,800,900
>> }
PS R:\> $r = myFunc
PS R:\> $r.Count
6
PS R:\> function myFunc2{
>> $a1 = 100,200,300
>> $a2 = 700,800,900
>>
>>
>>
>> $a1
>>
>>
>> return $a2
>> }
PS R:\> $r = myFunc2
PS R:\> $r.Count
6
在「陣列」前面加逗號,使它傳回陣列
PS R:\> function myFunc{
>>
>> ,(100,200,300)
>>
>>
>> return ,(700,800,900)
>> }
PS R:\> $r = myFunc
PS R:\> $r.Count
2
PS R:\> $r[0]
100
200
300
PS R:\> $r[1]
700
800
900
PS R:\> function myFunc2{
>> $a1 = 100,200,300
>> $a2 = 700,800,900
>>
>>
>>
>> ,$a1
>>
>>
>> return ,$a2
>> }
PS R:\> $r = myFunc2
PS R:\> $r.Count
2
PS R:\> $r[0]
100
200
300
PS R:\> $r[1]
700
800
900
陣列取值
負的索引值
PS R:\> $arr = 100, 200, 300
PS R:\> $arr[-1]
300
PS R:\> $arr[0..-1]
100
300
PS R:\> 0..-1
0
-1
中括弧內可以放陣列
PS R:\> $arr = 100, 200, 300
PS R:\> $i = 2, 1, 0
PS R:\> $arr[$i]
300
200
100
陣列的屬性值
PS R:\> $files = @(dir *.txt)
PS R:\> $files.Length
3
PS R:\> $files.LastWriteTime
2022年4月12日 下午 06:45:11
2022年5月29日 上午 08:00:13
2022年5月30日 下午 08:06:53
陣列設值
陣列向等號左邊設值
PS R:\> $arr = 100, 200, 300
PS R:\> $a, $b, $c = $arr
PS R:\> $a
100
PS R:\> $b
200
PS R:\> $c
300
PS R:\> $a, $b = $arr
PS R:\> $a
100
PS R:\> $b
200
300
PS R:\> $a, $b, $c, $d = $arr
PS R:\> $a
100
PS R:\> $b
200
PS R:\> $c
300
PS R:\> $d
PS R:\> $null -eq $d
True
陣列加法
陣列 + 陣列
PS R:\> $arr1 = 100, 200, 300
PS R:\> $arr2 = 400, 500, 600
PS R:\> $r = $arr1 + $arr2
PS R:\> $r.Count
6
PS R:\> $r = $arr1 + ,$arr2
PS R:\> $r.Count
4
陣列 + 元素
PS R:\> $arr1 = 100, 200, 300
PS R:\> $r = $arr1 + 500
PS R:\> $r.Count
4
PS R:\> $r = 500 + $arr1
方法引動過程失敗,因為 [System.Object[]] 未包含名為 'op_Addition' 的方法。
位於 線路:1 字元:1
PS R:\> $r = @(500) + $arr1
PS R:\> $r.Count
4
陣列乘法
PS R:\> $arr1 = 100, 200, 300
PS R:\> $r = $arr1 * 3
PS R:\> $r.Count
9
PS R:\> $r = 3 * $arr1
方法引動過程失敗,因為 [System.Object[]] 未包含名為 'op_Multiply' 的方法。
位於 線路:1 字元:1